/**
 * @author LKQ
 * @date 2022/3/4 13:44
 * @description
 */
public class FormalSolution {
    public static void main(String[] args) {
        FormalSolution solution = new FormalSolution();
        int[] arr = {1,3,5};
        solution.numOfSubarrays(arr);
    }

    public int numOfSubarrays(int[] arr) {
        final int MODULO = 1000000007;
        // 统计奇数前缀和的个数 、偶数前缀和的个数
        int odd = 0, even = 1;
        int subarrays = 0;
        int sum = 0;
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            sum += arr[i];
            subarrays = (subarrays + (sum % 2 == 0 ? odd : even)) % MODULO;
            if (sum % 2 == 0) {
                even++;
            } else {
                odd++;
            }
        }
        return subarrays;
    }
}
